package com.smiletrain.activities;

import com.smiletrain.R;
import com.smiletrain.activities.base.AbstractActivity;
import com.smiletrain.base.Caso;
import com.smiletrain.base.Paciente;
import com.smiletrain.util.AdminCasos;
import com.smiletrain.util.Constantes;
import com.smiletrain.view.GrupoRadioBoton;
import com.smiletrain.view.RadioBoton;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class PacienteActivity extends AbstractActivity {
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.paciente_view);
		super.setFootLayout();
		
		boolean bgen = true;
		if(paciente != null){
			bgen = paciente.isGenero();
			((TextView) findViewById(R.id.txtNombre)).setText(paciente.getNombres());
			((TextView) findViewById(R.id.txtApellidos)).setText(paciente.getApellidos());
		} 
		
		genero.setBotones(
				new RadioBoton(R.id.bMasculino,(ImageView) findViewById(R.id.bMasculino),bgen,R.drawable.vista03_radio_sel,R.drawable.vista03_radio),
				new RadioBoton(R.id.bFemenino,(ImageView) findViewById(R.id.bFemenino),!bgen,R.drawable.vista03_radio_sel,R.drawable.vista03_radio)
				);
		
		if(bgen){
			((ImageView) findViewById(R.id.bMasculino)).setImageResource(R.drawable.vista03_radio_sel);
			((ImageView) findViewById(R.id.bFemenino)).setImageResource(R.drawable.vista03_radio);
		} else {
			((ImageView) findViewById(R.id.bMasculino)).setImageResource(R.drawable.vista03_radio);
			((ImageView) findViewById(R.id.bFemenino)).setImageResource(R.drawable.vista03_radio_sel);
		}
		
		ImageView masculino = (ImageView) findViewById(R.id.bMasculino);
		
		masculino.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				genero.select(R.id.bMasculino);
			}
			
		});
		
		ImageView femenino = (ImageView) findViewById(R.id.bFemenino);
		
		femenino.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				genero.select(R.id.bFemenino);
			}
			
		});
		
		
		
		ImageView siguiente = (ImageView) findViewById(R.id.bSiguiente);
        
        siguiente.setOnClickListener(new OnClickListener() {
        	
			@Override
			public void onClick(View v) {
				if(validarFormulario() || !Constantes.validar){
					Caso c = AdminCasos.instance.getCasoActual();
					c.setPaciente(paciente);
					Intent intent = new Intent(PacienteActivity.this, PreFotosActivity.class);
					startActivity(intent);
				}
			}
			
		});

	}
	
	@Override
	public void updateCaso() {
		
		String nombre = ((EditText) findViewById(R.id.txtNombre)).getText().toString().trim();
		String apellidos = ((EditText) findViewById(R.id.txtApellidos)).getText().toString().trim();
		
		if(paciente == null)
			paciente = new Paciente();
		
		paciente.setNombres(nombre);
		paciente.setApellidos(apellidos);
		paciente.setGenero(genero.isSelected(R.id.bMasculino));
		
		Caso c = AdminCasos.instance.getCasoActual();
		c.setPaciente(paciente);
		
	}
	
	protected boolean validarFormulario() {
		boolean valido = true;
		String msg = null;
		
		String nombre = ((EditText) findViewById(R.id.txtNombre)).getText().toString().trim();
		if(valido){
			if(nombre.length() == 0) {
				valido = false;
				msg = "Debe ingresar el nombre del paciente";
			} else if(nombre.length() > 200) {
				valido = false;
				msg = "El nombre del paciente es muy largo";
			}
		}
		
		String apellidos = ((EditText) findViewById(R.id.txtApellidos)).getText().toString().trim();
		if(valido){
			if(apellidos.length() == 0) {
				valido = false;
				msg = "Debe ingresar los apellidos del paciente";
			} else if(apellidos.length() > 200) {
				valido = false;
				msg = "Los apellidose del paciente son muy largos";
			}
		}
		
		if(!valido){
			Toast.makeText(PacienteActivity.this, msg, Toast.LENGTH_LONG).show();
		} else {
			if(paciente == null)
				paciente = new Paciente();
			paciente.setNombres(nombre);
			paciente.setApellidos(apellidos);
			paciente.setGenero(genero.isSelected(R.id.bMasculino));
		}
		
		return valido;
	}

	private GrupoRadioBoton genero = new GrupoRadioBoton();
	
	private Paciente paciente = caso.getPaciente();

}
